package br.edu.fasete.javaroad.plugin.gui.tablemodel;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.table.DefaultTableModel;

public class ComponentTableModel extends DefaultTableModel {
	private static String[] colunas = {".", "Component"};
	private Class[] classes = { Boolean.class, String.class,};
	
	public ComponentTableModel() {
		super(colunas, 0);
	}
	
	public String getColumnName(int arg0) {
		return colunas[arg0];
	}

	public Class getColumnClass(int arg0) {
		return classes[arg0];
	}
	
	public void adicionarArquivo(String nome) {
		Vector<Object> linha = new Vector<Object>();
		linha.add(new Boolean(true));
		linha.add(nome);
		super.addRow(linha);
	}
	
	public void limparTabela() {
		while(this.getRowCount() > 0) {
			this.removeRow(0);
		}
	}
	
	public void gerarTodos() {
		setAll(new Boolean(true), 0);
	}
	
	public void gerarNenhum() {
		setAll(new Boolean(false), 0);
	}	
	
	private void setAll(Object value, int column) {
		int linhas = this.getRowCount();
		for(int i = 0; i < linhas; i++) {
			setValueAt(value, i, column);
		}			
		
	}
	
	public List<String> getListaComponentes() {
		List<String> listaComponentes = new ArrayList<String>();
		int linhas = this.getRowCount();
		for(int i = 0; i < linhas; i++) {
			Boolean sel = (Boolean) getValueAt(i, 0);
			if(sel.booleanValue()) {
				listaComponentes.add((String)getValueAt(i, 1));
			}
		}		
		return listaComponentes;
	}
	
}
